package com.ruoyi.cs.mapper;

import com.ruoyi.cs.domain.TWarGrate;
import com.ruoyi.cs.domain.TWarReceive;
import com.ruoyi.cs.domain.vo.TWarResultVo;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.List;

/**
 * 战令等级Mapper接口
 * 
 * @author ruoyi
 * @date 2023-12-11
 */
public interface TWarGrateMapper 
{
    /**
     * 查询战令等级
     * 
     * @param id 战令等级主键
     * @return 战令等级
     */
    public TWarGrate selectTWarGrateById(Long id);

    /**
     * 查询战令等级列表
     * 
     * @param tWarGrate 战令等级
     * @return 战令等级集合
     */
    public List<TWarGrate> selectTWarGrateList(TWarGrate tWarGrate);

    /**
     * 新增战令等级
     * 
     * @param tWarGrate 战令等级
     * @return 结果
     */
    public int insertTWarGrate(TWarGrate tWarGrate);

    /**
     * 修改战令等级
     * 
     * @param tWarGrate 战令等级
     * @return 结果
     */
    public int updateTWarGrate(TWarGrate tWarGrate);

    /**
     * 删除战令等级
     * 
     * @param id 战令等级主键
     * @return 结果
     */
    public int deleteTWarGrateById(Long id);

    /**
     * 批量删除战令等级
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTWarGrateByIds(Long[] ids);

    /**
     * @Desc: 战令等级批量查询
     * @author: zz
     * @date: 2023/12/11
     */
    public List<TWarResultVo> maxGrateGroupWarId(List<String> warIds);

    /**
     * @Desc: 获取战令最大等级
     * @author: zz
     * @date: 2023/12/12
     */
    public Integer maxGrate(String warId);

    /**
     * @Desc: 获取战令等级
     * @author: zz
     * @date: 2023/12/13
     */
    public TWarGrate getTWarReceiveById(@Param("warId") String warId,@Param("grate")  Integer grate);

    /**
     * @Desc: 获取当前经验能达到的等级
     * @author: zz
     * @date: 2023/12/13
     */
    public int getMaxGrateByExperience(@Param("warId") String warId,@Param("experienceValue") BigDecimal experienceValue);
}
